package cn.itcast.shiro;

import org.apache.shiro.crypto.hash.Md5Hash;
import org.junit.Test;

import java.util.UUID;

public class App {
    /**
     * shiro提供的md5加密, 不安全
     *
     * 明文     密文   【彩虹表】 【撞库】
     *  1    c4ca4238a0b923820dcc509a6f75849b
     */
    @Test
    public void md5() {
        // c4ca4238a0b923820dcc509a6f75849b
        String pwd = new Md5Hash("1").toString();
        System.out.println("pwd = " + pwd);
    }

    // 加密，加盐
    @Test
    public void md5Salt() {
        // 加密，加盐  （推荐）
        // e1087d424b213621545713b872420c7b
        String salt = "lw@export.com";
        System.out.println("加密加盐："+new Md5Hash("1",salt));

        // 加密，加随机盐  (随机盐要存储到数据库中)  [BCrypt]
        System.out.println("加密加随机盐："+new Md5Hash("1", UUID.randomUUID().toString()));

        // 加密，加盐,加迭代次数
        System.out.println("加密加盐加迭代次数："+new Md5Hash("1",salt,200));
    }
}
